// symbol 
let a = Symbol('a');
let b = Symbol('b');
let obj = {};
obj[a] = 'valueA';
obj[b] = 'valueB';
obj[Symbol('d')] = 'valueD'
let objKeyList = Object.getOwnPropertySymbols(obj);
console.log(objKeyList.length); // => 2
console.log(objKeyList); // => [ Symbol(a), Symbol(b) ]
console.log(a === Symbol.for('a'))

console.log(JSON.stringify({ [Symbol('c')]: 'value' })) // {}
console.log(JSON.stringify(obj[Symbol('c')])) // undefined
console.log(obj[a]) // valueA
console.log(obj[Object(a)]) // 
console.log(obj[Symbol('d')]) // undefined 因为每次Symbol()都是新生成一个值，此处的Symbol('d')和上面不是同一个
